Index তৈরি এবং ব্যবহার

Database Tutorials - এইচ২ ডাটাবেস (H2 Database) H2 এর ইন্ডেক্সিং এবং পারফরম্যান্স টিউনিং |
217
217

H2 ডেটাবেজে Index হল একটি ডেটাবেজ অবজেক্ট যা টেবিলের একটি বা একাধিক কলামের উপর তৈরি করা হয় এবং ডেটাবেজের মধ্যে তথ্য অনুসন্ধান এবং অ্যাক্সেস করার গতি বাড়ানোর জন্য ব্যবহৃত হয়। Index তৈরি করার মাধ্যমে, আপনি দ্রুত তথ্য খুঁজে পাওয়ার জন্য ডেটাবেজের কার্যক্ষমতা উন্নত করতে পারেন। এটি বড় ডেটাবেজে কার্যকরীভাবে ব্যবহৃত হয় যেখানে ডেটার পরিমাণ অনেক বড় এবং অনুসন্ধান দ্রুত হওয়া প্রয়োজন।


Index এর সুবিধা

  • তথ্য অনুসন্ধানে গতি বৃদ্ধি: Index ডেটা অনুসন্ধান প্রক্রিয়াকে দ্রুত করে তোলে।
  • ডেটাবেজ কর্মক্ষমতা উন্নত: একটি index তৈরি করলে SELECT কুয়েরি দ্রুততর হয়, বিশেষত যখন WHERE ক্লজে শর্ত বা JOIN ব্যবহৃত হয়।
  • ফিল্টার অপারেশন দ্রুত করে: WHERE শর্তে থাকা কলামগুলোতে index থাকলে, ডেটা ফিল্টারিং দ্রুত ঘটে।

Index তৈরির সাধারণ সিনট্যাক্স

CREATE INDEX <ইন্ডেক্স_নাম> ON <টেবিল_নাম> (<কলাম_নাম>);
  • <ইন্ডেক্স_নাম>: এটি index এর নাম।
  • <টেবিল_নাম>: যেখানে index তৈরি করতে চান সেই টেবিলের নাম।
  • <কলাম_নাম>: ওই টেবিলের কলাম যার উপর index তৈরি হবে।

Index তৈরি করার উদাহরণ

১. একটি সাধারণ index তৈরি

ধরা যাক, আমাদের একটি students টেবিল রয়েছে, এবং আমরা age কলামের উপর একটি index তৈরি করতে চাই, যাতে বয়স অনুসারে দ্রুত তথ্য অনুসন্ধান করা যায়:

CREATE INDEX idx_age ON students(age);

এই কুয়েরি students টেবিলের age কলামের উপর একটি index তৈরি করবে। এর ফলে, age কলামে কোনো শর্ত থাকলে (যেমন WHERE age = 25), ডেটাবেজের কর্মক্ষমতা বাড়বে।

২. একাধিক কলামের উপর index তৈরি

একাধিক কলামের উপর index তৈরি করতে হলে, সেই কলামগুলোকে কমা দিয়ে আলাদা করতে হবে। উদাহরণস্বরূপ, যদি name এবং age দুইটি কলামের উপর index তৈরি করতে চান:

CREATE INDEX idx_name_age ON students(name, age);

এই কুয়েরি students টেবিলের name এবং age কলামের উপর একটি যৌথ (composite) index তৈরি করবে, যা যদি এই দুইটি কলামের ওপর অনুসন্ধান করা হয়, তাহলে ফলাফল দ্রুত আসবে।

৩. UNIQUE Index তৈরি

UNIQUE index একটি বিশেষ ধরনের index যা নিশ্চিত করে যে ওই কলামে কোনও duplicate (একই মানের) ডেটা থাকবে না। উদাহরণস্বরূপ, যদি আপনি student_id কলামের উপর একটি UNIQUE index তৈরি করতে চান:

CREATE UNIQUE INDEX idx_unique_student_id ON students(student_id);

এই কুয়েরি student_id কলামের উপর একটি UNIQUE index তৈরি করবে, যাতে student_id এর মান সারা টেবিলে একে অপরের থেকে ভিন্ন থাকবে।

৪. PRIMARY KEY এবং INDEX

একটি টেবিলের PRIMARY KEY স্বয়ংক্রিয়ভাবে একটি UNIQUE index তৈরি করে, যার ফলে ঐ কলামে duplicate ডেটা থাকতে পারে না। সাধারণত, PRIMARY KEY কলামের উপর index তৈরি করা হয়, এবং এটি ডেটাবেজের অটোমেটিক অংশ হয়।

CREATE TABLE students (
    student_id INT PRIMARY KEY,
    name VARCHAR(100),
    age INT
);

এই টেবিলটি তৈরি করার সময় student_id কলামের উপর PRIMARY KEY index তৈরি হবে, যাতে এই কলামে একক মান (unique) থাকে।


Index ব্যবহার

Index তৈরির পর, ডেটাবেজে তথ্য অনুসন্ধান এবং অ্যাক্সেস করতে index স্বয়ংক্রিয়ভাবে ব্যবহৃত হয়, যখন আপনার কুয়েরি WHERE, JOIN অথবা ORDER BY ক্লজ ব্যবহার করে।

১. Index ব্যবহার করা SELECT কুয়েরি

যেমন যদি আমরা students টেবিল থেকে বয়স ২০ এর বেশি ছাত্রদের তথ্য দেখতে চাই, এবং আমরা age কলামের উপর একটি index তৈরি করেছি:

SELECT * FROM students WHERE age > 20;

এই কুয়েরি চলানোর সময়, H2 ডেটাবেজ স্বয়ংক্রিয়ভাবে age কলামের উপর তৈরি করা index ব্যবহার করবে, যার ফলে তথ্য খোঁজার গতি বাড়বে।

২. JOIN অপারেশনে Index ব্যবহার

ধরা যাক, দুটি টেবিল students এবং courses আছে, এবং আমরা student_id কলাম ব্যবহার করে এই দুটি টেবিলকে যুক্ত করতে চাই। যদি student_id কলামের উপর একটি index তৈরি থাকে, তাহলে JOIN অপারেশনটি দ্রুত হবে:

SELECT s.name, c.course_name
FROM students s
JOIN courses c ON s.student_id = c.student_id;

এই কুয়েরি চলানোর সময়, ডেটাবেজ student_id কলামের উপর তৈরি করা index ব্যবহার করবে, ফলে JOIN অপারেশনটি দ্রুত সম্পন্ন হবে।


Index এর অপ্টিমাইজেশন এবং পারফরম্যান্স

১. Query Optimization

ডেটাবেজে সঠিক index তৈরি করলে কুয়েরির পারফরম্যান্স অনেক বেড়ে যায়। তবে, অতিরিক্ত index তৈরি করলে সেগুলোর আপডেট করা এবং সঞ্চয় করা সময় নিয়ে আসে, তাই index তৈরি করার সময় সতর্কতা অবলম্বন করা উচিত। শুধু মাত্র সেই কলামগুলোর উপর index তৈরি করুন যা ডেটাবেজে বহুবার অনুসন্ধান করা হয়

২. Index এবং Disk Space

একটি index সাধারণত কিছু অতিরিক্ত ডিস্ক স্পেস ব্যবহার করে। অতএব, যখন ডেটাবেজে অনেক বড় টেবিল থাকে, তখন index এর জন্য পর্যাপ্ত ডিস্ক স্পেস নিশ্চিত করা উচিত।


Index এর অপসারণ (DROP INDEX)

যদি আপনি একটি index মুছে ফেলতে চান, তাহলে DROP INDEX কুয়েরি ব্যবহার করতে হয়:

DROP INDEX idx_age;

এই কুয়েরি idx_age নামক index মুছে ফেলবে। মনে রাখবেন, index মুছে ফেললে ডেটাবেজের কর্মক্ষমতা কিছুটা কমতে পারে যদি ওই indexটি গুরুত্বপূর্ণ ছিল।


উপসংহার

Index ডেটাবেজের কার্যক্ষমতা বাড়ানোর একটি অত্যন্ত গুরুত্বপূর্ণ টুল। এটি ডেটাবেজের তথ্য অনুসন্ধান এবং অ্যাক্সেস প্রক্রিয়া দ্রুত করতে সাহায্য করে। তবে, যথাযথভাবে index ব্যবহার করা গুরুত্বপূর্ণ, কারণ অতিরিক্ত index তৈরি করলে সেগুলোর রক্ষণাবেক্ষণ এবং আপডেটের জন্য অতিরিক্ত সময় এবং ডিস্ক স্পেস প্রয়োজন। Index ব্যবহারের সময় ডেটাবেজের পারফরম্যান্স এবং ডিস্ক স্পেস ব্যবস্থাপনায় মনোযোগ দেয়া উচিত।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion